/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package pacoteframe;

import com.sun.glass.events.KeyEvent;
import java.awt.*;
import java.io.IOException;
//import java.awt.event.ContainerListener;
//import java.awt.event.ItemListener;
import java.sql.*;
//import java.sql.ResultSet;
//import java.sql.SQLException;
import java.text.ParseException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
//import javax.swing.JOptionPane;
//import javax.swing.JTable;
//import javax.swing.JTextField;
import javax.swing.table.*;
import pacoteclasse.Cidade;
import pacoteconexao.ConexaoMySQL;
/**
 *
 * @author Izak
 * @author Bruno
 */

public class FrmCadCidade extends javax.swing.JFrame {
    Cidade cnnCidade = new Cidade();
    String modo="pesquisa";
    ResultSet rsPesquisa=null;
    /**
     * Creates new form form_inserecliente
     */
    public FrmCadCidade() {
        initComponents();
        setLocationRelativeTo(null);
//        int x=Toolkit.getDefaultToolkit().getScreenSize().width;
//        int y=Toolkit.getDefaultToolkit().getScreenSize().height;
//        setBounds(x/2-800/2, y/2-300/2, 800, 350);
        cnnCidade.conectar(); // aqui eh feita a conexão e usada enquanto o form está aberto
        pesquisar();
        pangCidade.setEnabledAt(1, false);
        botEditar_cidade.setEnabled(false);
        botExcluir_cidade.setEnabled(false);
        txtId_cidade.setEnabled(false);
        txtPesquisa_cidade.requestFocus();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        grpbTipo_cliente = new javax.swing.ButtonGroup();
        entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("db_plastek?zeroDateTimeBehavior=convertToNullPU").createEntityManager();
        tbClienteQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT t FROM TbCliente t");
        tbClienteList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : tbClienteQuery.getResultList();
        pangCidade = new javax.swing.JTabbedPane();
        panPesquisa = new javax.swing.JPanel();
        txtPesquisa_cidade = new javax.swing.JTextField();
        botPesquisar = new javax.swing.JButton();
        botNovo_cidade = new javax.swing.JButton();
        botEditar_cidade = new javax.swing.JButton();
        botExcluir_cidade = new javax.swing.JButton();
        panTabela = new javax.swing.JScrollPane();
        tblCidade = new javax.swing.JTable();
        panCadastro = new javax.swing.JPanel();
        botSalvar = new javax.swing.JButton();
        botLimpar = new javax.swing.JButton();
        botCancelar = new javax.swing.JButton();
        lblId_cidade = new javax.swing.JLabel();
        txtId_cidade = new javax.swing.JTextField();
        lblNome = new javax.swing.JLabel();
        txtNome_cidade = new javax.swing.JTextField();
        lblObs = new javax.swing.JLabel();
        cmbUf_cidade = new javax.swing.JComboBox();

        setTitle("Cadastrar Cidades");
        setLocationByPlatform(true);
        setName("frmCadCargo"); // NOI18N
        setResizable(false);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosed(java.awt.event.WindowEvent evt) {
                formWindowClosed(evt);
            }
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        pangCidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        txtPesquisa_cidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        txtPesquisa_cidade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txtPesquisa_cidadeActionPerformed(evt);
            }
        });
        txtPesquisa_cidade.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                txtPesquisa_cidadeFocusGained(evt);
            }
        });
        txtPesquisa_cidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                txtPesquisa_cidadeKeyReleased(evt);
            }
        });

        botPesquisar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Pesquisar.png"))); // NOI18N
        botPesquisar.setText("Pesquisar");
        botPesquisar.setFocusTraversalPolicyProvider(true);
        botPesquisar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botPesquisarActionPerformed(evt);
            }
        });

        botNovo_cidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botNovo_cidade.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Novo.png"))); // NOI18N
        botNovo_cidade.setText("Novo");
        botNovo_cidade.setIconTextGap(15);
        botNovo_cidade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botNovo_cidadeActionPerformed(evt);
            }
        });

        botEditar_cidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botEditar_cidade.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Editar.png"))); // NOI18N
        botEditar_cidade.setText("Editar");
        botEditar_cidade.setIconTextGap(15);
        botEditar_cidade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botEditar_cidadeActionPerformed(evt);
            }
        });

        botExcluir_cidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botExcluir_cidade.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Excluir.png"))); // NOI18N
        botExcluir_cidade.setText("Excluir");
        botExcluir_cidade.setIconTextGap(15);
        botExcluir_cidade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botExcluir_cidadeActionPerformed(evt);
            }
        });

        tblCidade.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {

            }
        ));
        tblCidade.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        tblCidade.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentShown(java.awt.event.ComponentEvent evt) {
                tblCidadeComponentShown(evt);
            }
        });
        tblCidade.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                tblCidadeFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                tblCidadeFocusLost(evt);
            }
        });
        panTabela.setViewportView(tblCidade);
        tblCidade.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

        javax.swing.GroupLayout panPesquisaLayout = new javax.swing.GroupLayout(panPesquisa);
        panPesquisa.setLayout(panPesquisaLayout);
        panPesquisaLayout.setHorizontalGroup(
            panPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panPesquisaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(panPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(panTabela, javax.swing.GroupLayout.PREFERRED_SIZE, 468, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panPesquisaLayout.createSequentialGroup()
                        .addComponent(txtPesquisa_cidade)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(botPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(panPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(botNovo_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botEditar_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botExcluir_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        panPesquisaLayout.setVerticalGroup(
            panPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panPesquisaLayout.createSequentialGroup()
                .addGap(17, 17, 17)
                .addGroup(panPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtPesquisa_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(panPesquisaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panPesquisaLayout.createSequentialGroup()
                        .addComponent(botNovo_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(botEditar_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(botExcluir_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(panTabela, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                .addGap(10, 10, 10))
        );

        pangCidade.addTab("Cidades", panPesquisa);

        botSalvar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botSalvar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Salvar.png"))); // NOI18N
        botSalvar.setText("Salvar");
        botSalvar.setIconTextGap(10);
        botSalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botSalvarActionPerformed(evt);
            }
        });

        botLimpar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botLimpar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Limpar.png"))); // NOI18N
        botLimpar.setText("Limpar");
        botLimpar.setIconTextGap(10);
        botLimpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botLimparActionPerformed(evt);
            }
        });

        botCancelar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pacoteicones/Cancelar.png"))); // NOI18N
        botCancelar.setText("Cancelar");
        botCancelar.setIconTextGap(5);
        botCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botCancelarActionPerformed(evt);
            }
        });

        lblId_cidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        lblId_cidade.setText("Código:");

        txtId_cidade.setEditable(false);
        txtId_cidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        lblNome.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        lblNome.setText("Nome:");

        txtNome_cidade.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

        lblObs.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        lblObs.setText("UF:");

        cmbUf_cidade.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Selecione...", "AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "PA", "PB", "PN", "PE", "PI", "RJ", "RN", "RO", "RR", "RS", "SC", "SP", "SE", "TO" }));
        cmbUf_cidade.setSelectedItem("Selecione...");

        javax.swing.GroupLayout panCadastroLayout = new javax.swing.GroupLayout(panCadastro);
        panCadastro.setLayout(panCadastroLayout);
        panCadastroLayout.setHorizontalGroup(
            panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panCadastroLayout.createSequentialGroup()
                .addGap(15, 15, 15)
                .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(lblObs, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(lblNome, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(lblId_cidade, javax.swing.GroupLayout.DEFAULT_SIZE, 94, Short.MAX_VALUE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(txtNome_cidade, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(panCadastroLayout.createSequentialGroup()
                        .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(cmbUf_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtId_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(0, 294, Short.MAX_VALUE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(botCancelar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(botSalvar, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(botLimpar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        panCadastroLayout.setVerticalGroup(
            panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panCadastroLayout.createSequentialGroup()
                .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(panCadastroLayout.createSequentialGroup()
                        .addGap(35, 35, 35)
                        .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(txtId_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(lblId_cidade, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addGap(18, 18, 18)
                        .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(lblNome, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(txtNome_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panCadastroLayout.createSequentialGroup()
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(botSalvar)))
                .addGap(18, 18, 18)
                .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(panCadastroLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(lblObs, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(cmbUf_cidade, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(botLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
                .addComponent(botCancelar)
                .addContainerGap())
        );

        pangCidade.addTab("Cadastrar", panCadastro);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(pangCidade))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(pangCidade, javax.swing.GroupLayout.PREFERRED_SIZE, 294, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        getAccessibleContext().setAccessibleDescription("");

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private ResultSet atualizarTabela(String sql){
        ResultSet rsCidade = null;
        final DefaultTableModel modelo = new DefaultTableModel(){
            @Override
            public boolean isCellEditable(int row, int column){
                return false;
            }
        };
        try {
            modelo.addColumn("Código");
            modelo.addColumn("Nome");
            modelo.addColumn("UF");

            tblCidade.setModel(modelo);
            rsCidade=cnnCidade.consultar(sql);
        
            while(rsCidade.next()){
                modelo.addRow(new Object[]{
                    rsCidade.getInt("id_cidade"),
                    rsCidade.getString("nome_cidade"),
                    rsCidade.getString("uf_cidade")
                });
            }
            tblCidade.setModel(modelo);
            tblCidade.setSelectionMode(0);
            rsCidade.beforeFirst(); // volta para o inicio
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Erro na inicialização: " + e);
        }
        return rsCidade;
    }
    
    
    private void pesquisar(){
        try{
            txtPesquisa_cidade.requestFocus();
            String pesquisa = "\"%"+txtPesquisa_cidade.getText()+"%\"";
            rsPesquisa = atualizarTabela("SELECT * FROM tb_cidade WHERE "+
                "id_cidade like "+pesquisa+
                " OR nome_cidade like "+pesquisa+
                " OR uf_cidade like "+pesquisa+
                ";");
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(null,"Erro ao pesquisar: " + e);
        }
    }
    
    private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened
        
    }//GEN-LAST:event_formWindowOpened

    private void botNovo_cidadeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botNovo_cidadeActionPerformed

        txtId_cidade.setText("");
        txtNome_cidade.setText("");
        cmbUf_cidade.setSelectedIndex(0);
        pangCidade.setSelectedIndex(0);
        pangCidade.setEnabledAt(1, false);
        pangCidade.setEnabledAt(1, true);
        pangCidade.setSelectedIndex(1);
        txtNome_cidade.requestFocus();
        modo="novo";
    }//GEN-LAST:event_botNovo_cidadeActionPerformed

    private void botEditar_cidadeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botEditar_cidadeActionPerformed

        modo="editar";
        int i,idCidade;
        try{
            for(i=0;i<=tblCidade.getSelectedRow();i++){
                rsPesquisa.next(); // acha o registro que o usuário clicou
            }
            pangCidade.setEnabledAt(1, true);
            pangCidade.setSelectedIndex(1);
            txtId_cidade.setText(rsPesquisa.getString("id_cidade"));
            txtNome_cidade.setText(rsPesquisa.getString("nome_cidade"));
            cmbUf_cidade.setSelectedItem(rsPesquisa.getString("uf_cidade"));
        }catch(SQLException ex){
            JOptionPane.showMessageDialog(null,"Erro na edição: " + ex);
            Logger.getLogger(FrmCadCidade.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_botEditar_cidadeActionPerformed

    private void botExcluir_cidadeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botExcluir_cidadeActionPerformed
        if(JOptionPane.showConfirmDialog(pangCidade, 
        "Deseja realmente excluir este cidade?","Confirmação",
        JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
            ResultSet listCliente;
            int i;
            try{
                listCliente=cnnCidade.consultar("SELECT * FROM tb_cidade;");
                for(i=0;i<=tblCidade.getSelectedRow();i++){
                    listCliente.next();
                }
                cnnCidade.excluirCidade(listCliente.getString("id_cidade"));
                JOptionPane.showMessageDialog(null,"Cidade excluída com sucesso!");
                pesquisar();
            }catch(Exception e){
                JOptionPane.showMessageDialog(null,"Erro na exclusão: " + e);
            }
        }
    }//GEN-LAST:event_botExcluir_cidadeActionPerformed

    
    private void botPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botPesquisarActionPerformed
        pesquisar();
    }//GEN-LAST:event_botPesquisarActionPerformed

    private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed
        cnnCidade.desconectar();
    }//GEN-LAST:event_formWindowClosed

    private void txtPesquisa_cidadeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtPesquisa_cidadeActionPerformed
        pesquisar();
    }//GEN-LAST:event_txtPesquisa_cidadeActionPerformed

    private void txtPesquisa_cidadeKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtPesquisa_cidadeKeyReleased
        pesquisar();
    }//GEN-LAST:event_txtPesquisa_cidadeKeyReleased

    private void tblCidadeComponentShown(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_tblCidadeComponentShown

    }//GEN-LAST:event_tblCidadeComponentShown

    private void tblCidadeFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_tblCidadeFocusGained
        if(modo.equals("pesquisa")){
            botNovo_cidade.setEnabled(true);
            botEditar_cidade.setEnabled(true);
            botExcluir_cidade.setEnabled(true);
        }
    }//GEN-LAST:event_tblCidadeFocusGained

    private void tblCidadeFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_tblCidadeFocusLost
        
    }//GEN-LAST:event_tblCidadeFocusLost

    private void txtPesquisa_cidadeFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtPesquisa_cidadeFocusGained
        botEditar_cidade.setEnabled(false);
        botExcluir_cidade.setEnabled(false);
        if(!modo.equals("pesquisa")){
            botNovo_cidade.setEnabled(false);
        }
    }//GEN-LAST:event_txtPesquisa_cidadeFocusGained

    private void botCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botCancelarActionPerformed
        String msg="";
        if(modo.equals("novo"))
        msg="Deseja realmente cancelar o novo cadastro?";
        else if(modo.equals("editar"))
        msg="Deseja realmente cancelar a edição?";

        if(JOptionPane.showConfirmDialog(pangCidade,
            msg,"Confirmação",
            JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
        txtId_cidade.setText("");
        txtNome_cidade.setText("");
        cmbUf_cidade.setSelectedIndex(0);
        pangCidade.setSelectedIndex(0);
        pangCidade.setEnabledAt(1, false);
        modo="pesquisa";
        botNovo_cidade.setEnabled(true);
        pesquisar();
        }
    }//GEN-LAST:event_botCancelarActionPerformed

    private void botLimparActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botLimparActionPerformed
        if(JOptionPane.showConfirmDialog(pangCidade,
            "Deseja realmente limpar todos os dados da tela?","Confirmação",
            JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
        txtId_cidade.setText("");
        txtNome_cidade.setText("");
        cmbUf_cidade.setSelectedIndex(0);
        }
    }//GEN-LAST:event_botLimparActionPerformed

    private void botSalvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botSalvarActionPerformed
        String strTipo;
        int idCidade,i;
        Cidade objCidade = new Cidade();
        try{
            if(txtNome_cidade.getText().equals("")){
                JOptionPane.showMessageDialog(null,"Informe o nome da cidade!");
                txtNome_cidade.requestFocus();
                return;
            }
            if(cmbUf_cidade.getSelectedIndex()==0){
                JOptionPane.showMessageDialog(null,"Informe o UF da cidade!");
                cmbUf_cidade.requestFocus();
                return;
            }
            if(JOptionPane.showConfirmDialog(pangCidade,
                "Deseja realmente salvar os dados?","Confirmação",
                JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){

            objCidade.conectar();
            if(modo.equals("novo")){
                objCidade.inserirCidade(
                    txtNome_cidade.getText(),
                    cmbUf_cidade.getSelectedItem().toString()
                );
            }else if (modo.equals("editar")){
                objCidade.editarCidade(
                    txtId_cidade.getText(),
                    txtNome_cidade.getText(),
                    cmbUf_cidade.getSelectedItem().toString()
                );
            }
            JOptionPane.showMessageDialog(null,"Dados salvos com sucesso!");
            pangCidade.setSelectedIndex(0);
            pangCidade.setEnabledAt(1, false);
            txtId_cidade.setText("");
            txtNome_cidade.setText("");
            cmbUf_cidade.setSelectedIndex(0);
            modo="pesquisa";
            botNovo_cidade.setEnabled(true);

            pesquisar();
        }
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,"Erro na inserção: " + e);
        }
    }//GEN-LAST:event_botSalvarActionPerformed
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(FrmCadCidade.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(FrmCadCidade.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(FrmCadCidade.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(FrmCadCidade.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        //</editor-fold>
        /* Create and display the form */
        
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FrmCadCidade().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton botCancelar;
    private javax.swing.JButton botEditar_cidade;
    private javax.swing.JButton botExcluir_cidade;
    private javax.swing.JButton botLimpar;
    private javax.swing.JButton botNovo_cidade;
    private javax.swing.JButton botPesquisar;
    private javax.swing.JButton botSalvar;
    private javax.swing.JComboBox cmbUf_cidade;
    private javax.persistence.EntityManager entityManager;
    private javax.swing.ButtonGroup grpbTipo_cliente;
    private javax.swing.JLabel lblId_cidade;
    private javax.swing.JLabel lblNome;
    private javax.swing.JLabel lblObs;
    private javax.swing.JPanel panCadastro;
    private javax.swing.JPanel panPesquisa;
    private javax.swing.JScrollPane panTabela;
    private javax.swing.JTabbedPane pangCidade;
    private java.util.List<pacoteframe.TbCliente> tbClienteList;
    private javax.persistence.Query tbClienteQuery;
    private javax.swing.JTable tblCidade;
    private javax.swing.JTextField txtId_cidade;
    private javax.swing.JTextField txtNome_cidade;
    private javax.swing.JTextField txtPesquisa_cidade;
    // End of variables declaration//GEN-END:variables

}
    

    

